package com.algaworks.cursojsf2.financeiro.converter;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;

import com.algaworks.cursojsf2.financeiro.model.RamoAtividade;
import com.algaworks.cursojsf2.financeiro.repository.RamosAtividade;
import com.algaworks.cursojsf2.financeiro.util.Repositorios;

@FacesConverter(forClass=RamoAtividade.class)
public class RamoAtividadeConverter implements Converter{

	private Repositorios repositorios = new Repositorios();
	
	@Override
	public Object getAsObject(FacesContext context, UIComponent component, String value) {
		System.out.println(value);
		RamoAtividade retorno = null;
		
		if(value != null && !value.equals("")){
			RamosAtividade ramos = this.repositorios.getRamosAtividade();
			
			retorno = ramos.porCodigo(new Integer(value));
			
			if(retorno == null){
				String descricaoErro = "Ramo de Atividade não existe!";
				FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
						descricaoErro,descricaoErro);
				throw new ConverterException(message);
			}
		}
		
		return retorno;
	}

	@Override
	public String getAsString(FacesContext context, UIComponent component, Object value) {
		
				
		if(value != null)
			return ((RamoAtividade) value).getCodigo().toString();
		
		return null;
	}
	
}
